package com.isdepci.project.carbon.mapper;

import com.alibaba.fastjson.JSONObject;

import com.isdepci.project.carbon.domain.StationInfo;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 能源站信息Mapper接口
 *
 * @author isdepci
 * @date 2023-05-08
 */
public interface StationInfoMapper {


    List<StationInfo> selectStationInfoDict();
    /**
     * 查询
     * @param stationId 能源站信息ID
     * @return 能源站信息
     */
     StationInfo selectStationInfoById(Long stationId);

    /**
     * 查询列表
     * @param stationInfo 能源站信息
     * @return list
     */
     List<StationInfo> selectStationInfoList(StationInfo stationInfo);

    /**
     * 查询列表  根据能源站编码
     * @param stationCode stationCode
     * @return List
     */
    List<StationInfo> selectListByCode(@Param("stationCode") String stationCode);

    List<StationInfo> selectListByProvinceCode(@Param("provinceCode") String provinceCode);

    /**
     * 查询正在运行使用的所有项目
     * @return list
     */
    List<StationInfo> selectUseStationInfo();

    /**
     * 根据类型查询列表
     * @param stationTypeCode stationTypeCode
     * @return List
     */
    List<StationInfo> selectUseListByStationTypeCode(@Param("stationTypeCode")String stationTypeCode);

    List<StationInfo> selectStationType(@Param("stationType")Integer stationType);

    List<StationInfo> selectUseList(@Param("stationTypeCode")String stationTypeCode,@Param("stationName")String stationName);

    /**
     * 新增
     * @param stationInfo 能源站信息
     * @return 结果
     */
     int insertStationInfo(StationInfo stationInfo);

    /**
    * 批量新增
    * @param list list
    */
    void insertList(@Param("list") List<StationInfo> list);

    /**
     * 修改
     * @param stationInfo 能源站信息
     * @return 结果
     */
     int updateStationInfo(StationInfo stationInfo);
     int changeTotal(StationInfo stationInfo);

    /**
     * 删除
     * @param stationId 能源站信息ID
     * @return 结果
     */
     int deleteStationInfoById(Long stationId);

    /**
     * 批量删除
     * @param stationIds 需要删除的数据ID
     * @return 结果
     */
     int deleteStationInfoByIds(Long[] stationIds);


    JSONObject totalStationData();



}
